package com.zym.init.enums;

import lombok.Getter;
import org.springframework.util.StringUtils;

/**
 * 用户状态枚举
 *
 * @author ZouYangMing
 */
@Getter
public enum UserStatusEnum {
    /**
     * 启用
     */
    ACTIVE("1", "active"),
    /**
     * 临时封禁
     */
    SUSPENDED("2", "suspended"),
    /**
     * 永久封禁
     */
    BANNED("3", "banned");

    private final String status;

    private final String text;

    UserStatusEnum(String status, String text) {
        this.status = status;
        this.text = text;
    }

    /**
     * 根据 status 获取枚举
     *
     * @param status 状态
     * @return 枚举
     */
    public static UserStatusEnum getEnumByStatus(String status) {
        if (!StringUtils.hasLength(status)) {
            return null;
        }
        for (UserStatusEnum anEnum : UserStatusEnum.values()) {
            if (anEnum.status.equals(status)) {
                return anEnum;
            }
        }
        return null;
    }

    /**
     * 校验范围
     *
     * @param status 状态
     * @return 结果
     */
    public static boolean isValidCode(String status) {
        if (status == null) {
            return false;
        }
        for (UserStatusEnum s : UserStatusEnum.values()) {
            if (s.getStatus().equals(status)) {
                return true;
            }
        }
        return false;
    }

}
